package com.chinaisafe.demo.service;

import com.chinaisafe.demo.entity.DemoTable;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaisafe.demo.vo.request.DemoTableReqVO;
import com.chinaisafe.demo.vo.response.DemoTableRespVO;

/**
 * DemoTableService
 * Description：测试类服务类
 *
 * @author JiangZhaoYong
 * @date 2024-07-15 13:00:14
 */
public interface DemoTableService extends IService<DemoTable> {
    /**
     * 根据条件获取测试类分页列表
     *
     * @param demoTableReqVO 筛选参数
     * @return Page<DemoTableRespVO> 分页对象
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    IPage<DemoTableRespVO> getPageList(DemoTableReqVO demoTableReqVO);

    /**
     * 新增测试类
     *
     * @param demoTableReqVO 新增参数
     * @return DemoTableRespVO 响应参数
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    DemoTableRespVO add(DemoTableReqVO demoTableReqVO);

    /**
     * 根据id编辑测试类
     *
     * @param demoTableReqVO 修改参数
     * @return DemoTableRespVO 响应参数
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    DemoTableRespVO update(DemoTableReqVO demoTableReqVO);

    /**
     * 新增或修改测试类
     *
     * @param demoTableReqVO 编辑修改参数
     * @return DemoTableRespVO 响应参数
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    DemoTableRespVO addOrUpdate(DemoTableReqVO demoTableReqVO);

    /**
     * 根据id获取测试类详情信息
     *
     * @param demoTableId 数据id
     * @return DemoTableRespVO 响应参数
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    DemoTableRespVO getDetailById(Long demoTableId);

    /**
     * 根据id删除测试类
     *
     * @param demoTableIds id数组
     * @author JiangZhaoYong
     * @date 2024-07-15 13:00:14
     */
    void deleteByIds(Long[] demoTableIds);
}
